classList.php

<?php

// if (false){
// class WhateverHandler {
//
    // public function verbClassList($className, ...$tags){
        // $Class = new MagicReflectionClass($className);
        // require(__DIR__.'/classList.php');
    // }
// }
//
// class MagicReflectionClass{
//
    // protected $ref;
//
    // public function __construct($className){
        // $this->ref = new \ReflectionClass($className);
    // }
//
    // public function getConstants(){
        // $constList = [];
        // $constantRefList = $ref->getConstants();
        // foreach ($constantRefList as $cr){
            // $docblock = \Utility\DocBlocks::parseDocBlock($cr->getDocComments());
            // $const = [
                // 'docblock'=>$docblock,
                // 'definition'=>$cr->getDefinition(),
                // 'description'=>$docblock->description,
            // ];
            // $constList[$cr->getName()] = (object)$const;
        // }
        // return $constList;
    // }
//
    // public function __get($prop){
        // $method = 'get'.ucfirst($prop);
        // return $this->$method();
    // }
// }
// }

if ($Class->type=='class')$type = 'class';
else $type = 'trait';
// echo "\n\n\n-----------\n\n";
// var_dump($Class);
// exit;
$class_name = property_exists($Class,'fqn') ? $Class->fqn : $Class->name;
?>
# <?= $type .' '. $class_name ?>
<?="\n".($Class->docblock['description']??'')?>



## Constants
<?php
foreach ($Class->consts??[] as $constant){
    $constant = (object)$constant;
    $def = $constant->definition;
    $descript = $constant->docblock['description']??'';
    echo "- `${def}` ${descript}\n";
}

?>

## Properties
<?php
foreach ($Class->properties??[] as $prop){
    $prop = (object)$prop;
    $def = $prop->declaration;
    $descript = $prop->docblock['description']??'';
    echo "- `${def}` ${descript}\n";
}

?>

## Methods 
<?php
foreach ($Class->methods??[] as $method){
    // var_dump($method);
    // exit;
    $method = (object)$method;
    $def = $method->declaration;
    // $descript = $method->description;
    $descript = $method->docblock['description']??'';
    // var_dump($method->docblock);
    // if (is_array($method->docblock));
    // exit;
    echo "- `${def}` ${descript}\n";
}

?>



<?php

//@debug

// var_dump($Class);
// exit;
// return;
?>

<?php

// static props/functions are not yet separated out by the lexer

return;

?>

## Static Properties 
<?php
foreach ($Class->staticProps??[] as $prop){
    $def = $prop->definition;
    $descript = $prop->description;
    echo "- `${def}` ${descript}\n";
}

?>

## Static functions
<?php
foreach ($Class->staticFunctions??[] as $func){
    $def = $func->definition;
    $descript = $func->description;
    echo "- `${def}` ${descript}\n";
}

?>

<?php

// print_r($Class);

?>